草庐IT

javascript var语句和性能

全部标签

javascript - 变量名长度与性能

变量名长度的巨大差异怎么可能不会导致javascript的任何性能损失?声明vara=0;所需的时间与声明varaaaaaaaaaaaaaaa=0;所需的时间相同甚至用它们执行计算也需要相同的时间。Myfiddletodemonstrate 最佳答案 window.a=2;window.b=3;window.c=4;window.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=2;window.bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

javascript - Array.push 与 Array.unshift 的性能对比

我在阅读有关数组操作的运行时复杂性的文章时了解到...ECMAScript规范不要求特定的运行时复杂性,因此它取决于特定的实现/JavaScript引擎/运行时行为[1][2].Array.push()以常数和Array.unshift()以线性时间运行,用于稀疏由类似哈希表的数据结构实现的数组[3].现在我想知道push和unshift在densearrays上是否具有相同的常数和线性时间复杂度.Firefox/Spidermonkey中的实验结果证实:现在我的问题:是否有官方文档或引用资料证实观察到的Firefox/Spidermonkey和Chrome/Node/V8的运行时性能

JavaScript:声明 vs 表达式 vs 语句

在过去的几个小时里,我一直在试图找出这3个之间的区别,而不仅仅是区别,我也一直在试图找出哪些是同义词,MDN将所有声明称为“声明”,所以我认为那是真实的。但是,我阅读的所有文章和SO问题都没有提供给我区分3(或2,表达式与语句)的备忘单。我注意到语句的一点是它们都以某种方式涉及一个特殊的JavaScript关键字,如break或for或var。文章说表达式求值,而语句执行操作。那什么是函数呢?它是一个语句表达式混合体(因为它在调用时都执行一个Action,并返回一个值)?现在,我假设情况并非如此,因为函数调用不涉及JavaScript关键字。然后是声明,每一个声明也是一个声明吗?我也知

javascript - 为什么两个函数调用的括号之间的换行符不被视为 js 中的两个语句?

为什么在js上做这种烂设计?这样设计自动插入分号是不是有什么特别的原因?这是我的代码,它不适用于js中的chrome:(function(){console.log("abc");})()(function(){console.log("123");})();这里是错误:UncaughtTypeError:(intermediatevalue)(...)isnotafunction我知道这段代码的正确版本是:(function(){console.log("abc");})();(function(){console.log("123");})();我就是想知道为什么js语法设计的这么

javascript - Rhino VS Spidermonkey 性能测试

我有一个正在为我的公司工作的项目,现在我需要决定我应该使用哪个JS引擎。目前我的选择是Spidermonkey或Rhino。我主要关心的是性能和可扩展性,我想知道是否进行了性能测试来比较两个引擎?我发现用谷歌搜索这个问题比我预期的要难。在此先感谢您的帮助,Ben。 最佳答案 我定期在Rhino和Spidermonkey上运行V8和Sunspider基准测试(免责声明:我是Rhino项目的提交者)。当前的Rhino版本(1.7R3)仍然比Spidermonkey慢很多,但是最近的git快照已经catch了。(请注意,我说的是没有Jae

javascript - 如何减少多个 if 语句的代码

我正在尝试验证一个大型联系表单。当用户忘记必填输入字段时,我会用默认文本填充空变量。我目前的解决方案使用九个if声明。有没有更好的方法来使用更少的代码?html:varonoma=$("#fname").val();vareponimo=$("#lname").val();varemail=$("#email").val();vardiefthinsi=$("#address").val();varpoli=$("#city").val();varxora=$("#country").val();varkatigoriaDiafimisis=$("#AdCategory").val()

javascript - jQuery core.js "+i"语句,错误还是技巧?

在jQuerycore.js中,currently,line260this.slice(i,+i+1);“+i”语句是错误的还是我找不到任何提及的花哨的诡计? 最佳答案 这是将i转换为数字的快速方法。这很重要,因为+如果它是一个字符串,则意味着不同的东西,如果它是一个数字。例如:vari="1";console.log(i+1);//"11"console.log(+i+1);//2它基本上是parseInt(i,10)的快捷方式。 关于javascript-jQuerycore.js"

比较语句的 Javascript 缩小

我正在查看由闭包生成的缩小的js文件之一。我发现无论我在哪里检查变量和字符串之间的相等性,例如,a=="13"||a=="40"闭包将其替换为"13"==a||"40"==a为什么要做这个修改?这里有一些性能优势吗? 最佳答案 这样做是为了获得较小的gzip压缩优势。如果你有“x==1”和“1==x”,编译器在这两种情况下都会将其切换为“1==x”,你会得到更多压缩得更好的常规代码。胜利是如此之小,以至于我考虑过删除代码并节省cpu周期,但现在是这样。它与防止程序员错误无关,因为它永远不会将“x=2”切换为“2=x”,因为这会改变程

javascript - 为 "IF"编写具有多个选项的 Jquery If 语句的更短方法

Jquery是否有更简单/更短的方法来编写这样的if语句:if(number==="0"){degrees="-160";}if(number==="1"){degrees="-158";}if(number==="2"){degrees="-156";}if(number==="3"){degrees="-154";}if(number==="4"){degrees="-152";}if(number==="5"){degrees="-150";}if(number==="6"){degrees="-148";}if(number==="7"){degrees="-146";}if(

javascript - Node.js 中 require 语句后的第二组括号是什么意思?

我今天在和一个同事一起工作,我看到了一些我以前从未见过的东西。我理解声明的第一部分(在文件clean.js中要求)。但是第二组括号是什么?require('./tasks/clean')('js','./dist/js') 最佳答案 无论从./tasks/clean导出什么都是一个函数,所以它只是被'js'和'./dist/js'调用作为参数等同于:constclean=require('./tasks/clean');clean('js','./dist/js'); 关于javascr